package com.youhome.business.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * Created by chen365 on 2019/02/26.
 */
@Data
@ApiModel
public class DTOOwnHouse {

    @ApiModelProperty(value = "房源Id")
    private String houseId;

    @ApiModelProperty(value = "门牌号")
    private String unitNumber;

    @ApiModelProperty(value = "街道", required = true)
    @NotBlank(message = "街道不能为空")
    private String fullStreetAddress;

    @ApiModelProperty(value = "市", required = true)
    @NotBlank(message = "市不能为空")
    private String city;

    @ApiModelProperty(value = "省(州)", required = true)
    @NotBlank(message = "省(州)不能为空")
    private String state;

    @ApiModelProperty(value = "郡，县")
    private String county;

    @ApiModelProperty(value = "邮编")
    private String zip;

    @ApiModelProperty(value = "上市价格", required = true)
    @NotNull(message = "listPrice不能为空")
    @Min(value = 0, message = "上市价格不能小于0")
    private Double listPrice;

    @ApiModelProperty(value = "上市类型(Lease、Purchase、Rent)", required = true)
    @NotBlank(message = "上市类型不能为空")
    private String listingCategory;

    @ApiModelProperty(value = "销售状态(Active,Cancelled,Closed,Expired,Pending,Withdrawn)", required = true)
    @NotBlank(message = "销售状态不能为空")
    private String listingStatus;

    @ApiModelProperty(value = "上市日期", required = true)
    @NotBlank(message = "上市日期不能为空")
    private String listingDate;

    @ApiModelProperty(value = "上市标题")
    private String listingTitle;

    @ApiModelProperty(value = "房屋介绍")
    private String listingDescription;

    @ApiModelProperty(value = "上市key")
    private String listingKey;

    @ApiModelProperty(value = "房间数量", required = true)
    @NotNull(message = "房间数量不能为空")
    @Min(value = 0, message = "房间数量不能小于0")
    private int bedroomCount;

    @ApiModelProperty(value = "卫浴数量", required = true)
    @Min(value = 0, message = "卫浴数量不能小于0")
    private int bathroomCount;

    @ApiModelProperty(value = "完整卫浴数量")
    private int fullBathroomCount;

    @ApiModelProperty(value = "3/4卫浴数量")
    private int threeQuarterBathroomCount;

    @ApiModelProperty(value = "1/2卫浴数量")
    private int halfBathroomCount;

    @ApiModelProperty(value = "1/4卫浴数量")
    private int oneQuarterBathroomCount;

    @ApiModelProperty(value = "房屋一级类型")
    private String propertyType;

    @ApiModelProperty(value = "房屋二级类型")
    private String propertySubtype;

    @ApiModelProperty(value = "mlsId")
    private String mlsId;

    @ApiModelProperty(value = "mlsName")
    private String mlsName;

    @ApiModelProperty(value = "mlsNumber")
    private String mlsNumber;

    @ApiModelProperty(value = "房屋面积")
    private Double livingArea;

    @ApiModelProperty(value = "土地面积")
    private Double lotSize;

    @ApiModelProperty(value = "建筑年代")
    private int yearBuilt;

    @ApiModelProperty(value = "开发商名称")
    private String builderName;

    @ApiModelProperty(value = "纬度")
    private Double latitude;

    @ApiModelProperty(value = "经度")
    private Double longitude;

    @ApiModelProperty(value = "土地编号")
    private String parcelId;

    @ApiModelProperty(value = "是否明星房源")
    private Boolean isStar;

    @ApiModelProperty(value = "图片地址(多个以“,”分隔开)")
    private String photos;

    @ApiModelProperty(value = "是否为新房")
    private Boolean isNewHouse;

    @ApiModelProperty(value = "社区名称")
    private String communityName;

    @ApiModelProperty(value = "楼盘名称")
    private String housesName;

    @ApiModelProperty(value = "预估租金")
    private Double forecastRent;

    @ApiModelProperty(value = "预估物业费")
    private Double forecastPropertyFee;

    @ApiModelProperty(value = "预估房产税")
    private Double forecastHousePropertyTax;

    @ApiModelProperty(value = "平面设计图(多个以“,”分隔开)")
    private String floorPlans;
}
